/**
 * @Author: yzy
 * @Description:
 * @Version: 1.0.0
 * @Date: 2021/6/30 9:49
 * @Copyright: MIN-Group；国家重大科技基础设施——未来网络北大实验室；深圳市信息论与未来网络重点实验室
 */
package identitymodel

import sec "vpn-management-server/security"

//身份采用的密码学算法
type KeyParam struct {
	PublicKeyAlgorithm sec.PublicKeyAlgorithm
	SignatureAlgorithm sec.SignatureAlgorithm
}

type ModifyRecord struct {
	Type      string
	Command   string
	Timestamp string
}

type Identity struct {
	// 不可变部分
	KeyParam           KeyParam `msg:"keyparam"`           //身份采用的密码学算法
	IdentityIdentifier string   `msg:"identityidentifier"` //身份标识
	Pubkey             string   `msg:"pubkey"`             //公钥
	Cert               string   `msg:"cert"`               //用户证书
	Timestamp          string   `msg:"timestamp"`          //注册时间

	// 可变部分
	Type          string         `msg:"type"`         //身份操作类型
	Command       string         `msg:"command"`      //身份操作命令
	Passwd        string         `msg:"passwd"`       //密码，用于给私钥加密
	IPIdentifier  string         `msg:"ipidentifier"` //IP标识
	ModifyRecords []ModifyRecord `msg:"modifyrecord"` //修改记录
	IsValid       int            `msg:"isvalid"`      //身份有效性
}
